Skip to content

Akhila2810/testssl_runner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

testssl_runner

testssl_runner.py is a multi-target runner designed to streamline bulk SSL/TLS scanning. It preserves native terminal color output, flags weak ciphers, and automatically saves a master summary in CSV format while archiving individual results for each domain.

Flags

Flag Description
<domain> [domain...] (Python only) Scan one or more domains/IPs given directly, space-separated.
-f <file> Scan every domain listed in <file> (one per line).
-o [directory] Save each scan to its own file in [directory] (default name if omitted: testssl-output-DD-MM-YYYY-HHMM).
-os Print each scan's output to the terminal.
-t <path> Use a specific testssl binary instead of auto-detecting one.
--report [dir] (Python only) Generate summary.csv. Saved to [dir] if given, else the -o directory, else the current directory.
--detect Show what testssl installation will be used, without scanning anything.
--interactive Menu-driven mode.
-h, --help Show help.

Color Behavior

Terminal Output (-os flag)

FULL COLORS - Shows original testssl colors (green/cyan/orange/red)

  • Green: OK/secure findings
  • Cyan: Information
  • Orange: Warnings/offered but concerning
  • Red: Vulnerabilities

File Output (-o flag only)

NO COLORS - Plain text saved to files (for better parsing/compatibility)

Both Output (-o + -os flags)

Terminal shows colorsFile saves without colors

Examples

Example 1: Terminal with Colors

./testssl_complete.sh -f domains.txt -os

Result: Full colored output in terminal like your screenshots

Example 2: File without Colors

./testssl_complete.sh -f domains.txt -o results

Result: Plain text files saved to results/ directory

Example 3: Both (Colors in Terminal, Plain in Files)

./testssl_complete.sh -f domains.txt -o results -os

Result:

  • Terminal shows colored output
  • Files contain plain text (no color codes)

TestSSL Color Levels

The script uses --color 3 for terminal output:

Color Level Description
--color 0 No colors (plain text)
--color 1 Terminal colors (basic)
--color 2 Terminal colors (medium)
--color 3 Terminal colors (full) - Script uses this

Visual Examples

Cipher Categories

Cipher Categories

server's cipher preferences

cipher-preferences

Vulnerabilities

Vulnerabilities

File Output Remains Clean

Files saved with -o remain color-code-free for:

  • Easy parsing with grep/awk
  • Clean text editor viewing
  • Report generation
  • CI/CD integration

Color Codes Preserved

The script now uses:

# Terminal output
$TESTSSL_CMD --color 3 "$domain"

# File output  
$TESTSSL_CMD --color 0 "$domain"

# Both (colors in terminal, plain in file)
$TESTSSL_CMD --color 3 "$domain" | tee >(sed 's/\x1b\[[0-9;]*m//g' > "$output_file")

Quick Reference

Command Terminal File
-os ✅ Colors -
-o - ❌ No colors
-o -os ✅ Colors ❌ No colors

Benefits

  1. Visual Scanning - Quickly spot vulnerabilities by color
  2. Match Documentation - Colors match testssl docs and tutorials
  3. Professional Reports - Terminal sessions look like the real thing
  4. File Compatibility - Saved files remain clean for parsing
  5. Color Mode: --color 3 (full colors for terminal)

About

A Python wrapper for multi-target testssl execution. Preserves original color output, flags weak ciphers, and exports clean summaries to CSV alongside individual domain logs.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages